package com.luoyx.hauyne.admin.sys.response;

import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.time.LocalDateTime;

/**
 * <p>
 * 系统用户 VO类
 * </p>
 *
 * @author 1079032853@qq.com
 * @since 2022-12-29
 */
@Getter
@Setter
@ToString
public class UserDetailVO {

    /**
     * 用户id
     */
    @ApiModelProperty("用户id")
    private Long id;

    /**
     * 用户名
     */
    @ApiModelProperty("用户名")
    private String username;

    /**
     * 手机号
     */
    @ApiModelProperty("手机号")
    private String phone;

    /**
     * 电子邮箱
     */
    @ApiModelProperty("电子邮箱")
    private String email;

    /**
     * 帐户是否未过期（true=是 false=否）
     */
    @ApiModelProperty("帐户是否未过期（true=是 false=否）")
    private Boolean accountNonExpired;

    /**
     * 帐户是否未锁定（true=是 false=否）
     */
    @ApiModelProperty("帐户是否未锁定（true=是 false=否）")
    private Boolean accountNonLocked;

    /**
     * 凭据（即密码）是否未过期（true=是 false=否）
     */
    @ApiModelProperty("密码是否未过期（true=是 false=否）")
    private Boolean credentialsNonExpired;

    /**
     * 是否可用（true=是 false=否）
     */
    @ApiModelProperty("是否可用（true=是 false=否）")
    private Boolean enabled;

    /**
     * 修改密码的时间
     */
    @ApiModelProperty("修改密码的时间")
    private LocalDateTime passwordChangeTime;

    /**
     * 最近登录时间
     */
    @ApiModelProperty("最近登录时间")
    private LocalDateTime lastLoginTime;

    /**
     * 最近登录IP
     */
    @ApiModelProperty("最近登录IP")
    private String lastLoginIp;

    /**
     * 累计登录次数
     */
    @ApiModelProperty("累计登录次数")
    private Long loginCount;

    /**
     * 昵称
     */
    @ApiModelProperty("昵称")
    private String nickname;

    /**
     * 真实姓名
     */
    @ApiModelProperty("真实姓名")
    private String realname;

    /**
     * 性别(1=男 0=女)
     */
    @ApiModelProperty("性别(1=男 0=女)")
    private Integer gender;

    /**
     * 头像
     */
    @ApiModelProperty("头像")
    private String avatar;

    /**
     * 职位
     */
    @ApiModelProperty("职位")
    private String position;

    /**
     * 部门
     */
    @ApiModelProperty("部门")
    private String departmentName;

    /**
     * 备注
     */
    @ApiModelProperty("备注")
    private String remark;

    /**
     * 创建人
     */
    @ApiModelProperty("创建人")
    private String createBy;

    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    private LocalDateTime createTime;

    /**
     * 修改人
     */
    @ApiModelProperty("修改人")
    private String updateBy;

    /**
     * 修改时间
     */
    @ApiModelProperty("修改时间")
    private LocalDateTime updateTime;
}
